package com.leo.base.db;

import org.apache.commons.lang3.StringUtils;

/**
 * @author wangss
 */
public class DynamicDataSourceContextHolder {

    /**
     * 使用ThreadLocal保证线程安全
     */
    private static final ThreadLocal<String> CONTEXT_HOLDER = new ThreadLocal<>();

    /**
     * 往当前线程里设置数据源类型
     *
     * @param dataSource
     */
    public static void setDataSourceKey(String dataSource) {
        if (StringUtils.isBlank(dataSource)) {
            throw new NullPointerException();
        }
        CONTEXT_HOLDER.set(dataSource);
    }

    /**
     * 获取数据源类型
     *
     * @return
     */
    public static String getDataSourceKey() {
        return StringUtils.isBlank(CONTEXT_HOLDER.get()) ? "mysql" : CONTEXT_HOLDER.get();
    }

    /**
     * 清空数据类型
     */
    public static void clearDataSourceKey() {
        CONTEXT_HOLDER.remove();
    }
}
